<?xml version="1.0" encoding="UTF-8"?>
<doc>

<title>RegExp 类</title>

<para>
<ptitle>RegExp 类</ptitle>
　RegExp 类是处理<kw>匹配模式</kw>的类。<r/>
　可以将与 perl 互换的模式指定为匹配模式。<r/>
　虽然和 JavaScript 的 RegExp 类相似，但是互换性很低。<r/>
<r/>
构造函数的格式如下。
<bq>
new RegExp(&lt;模式字符串&gt;, &lt;标志字符串=''&gt;);<r/>
</bq>
　模式字符串就是匹配模式。请注意，模式中指定的 \ 在字符串常量中要写成 \\ 。<r/>
　标志字符串是 g i l 这三个字符的组合。<r/>
　g 是全局搜索标志。指定这个标志的话，match、exec、replace 这些方法会对全部的与模式相匹配的子串进行处理。<r/>
　i 标志代表不区分英文字母的大小写。<r/>
　l 标志代表尝试进行本地化的匹配(应该是collation吧，我不确定应该翻成什么)。<r/>
<r/>
<example>
	var re = new RegExp("[a-z]+[0-9]*", "gi");<r/>
	var re = new RegExp("\\.\\.\\."); // /\.\.\./ ( 对 ... 进行匹配 )<r/>
</example>
</para>


<para>
<ptitle>匹配模式</ptitle>
　被 / 和 / 包围的部分即可指定为匹配模式。<r/>
　请参考 <link href="token"/> 。<r/>
</para>

<para>
<ptitle>compile</ptitle>
　compile 方法用于为正则表达式对象设置新的匹配模式。<r/>
　参数和指定给 RegExp 类的构造函数的参数相同。<r/>
</para>

<para>
<ptitle>test</ptitle>
　test 方法用于判断用参数指定的字符串是否和模式相匹配。<r/>
<bq>
構文 : test(&lt;字符串&gt;)<r/>
</bq>
　和模式相匹配则返回真，不匹配则返回假。<r/>
　这个方法会更新该对象中各属性的值。<r/>
</para>

<para>
<ptitle>exec</ptitle>
　exec 用于对参数中指定的字符串进行模式匹配，并返回包含匹配结果的数组。<r/>
<bq>
構文 : exec(&lt;字符串&gt;)<r/>
</bq>
　不匹配的话，数组中的元素数就是0。<r/>
　能匹配的话，元素 0 (第一个元素) 是全部的相匹配的子串，后面的元素是各个相匹配的子串 ( 模式字符串中以 (  ) 指定的部分 ) 。<r/>
　这个方法会更新该对象中各属性的值。<r/>
</para>

<para>
<ptitle>match</ptitle>
　match 方法除不更新对象中的属性的值以外，和 exec 方法相同。<r/>
<bq>
構文 : match(&lt;字符串&gt;)<r/>
</bq>
</para>


<para>
<ptitle>replace</ptitle>
　replace 用于对字符窜进行替换，并返回替换后的字符串。<r/>
<bq>
構文 : replace(&lt;对象字符串&gt;, &lt;用于替换的字符串&gt;)<r/>
</bq>
　对对象字符串进行匹配，将相匹配的子串用指定的用于替换的字符串替换掉，并将替换后的字符串返回。<r/>
　如果将函数而不是字符串当作“用于替换的字符串”传入的话，为了执行替换操作，这个函数会被调用。包含对象字符串中相匹配的子串的数组对象会作为函数的一个参数传入 ( 关于这个数组请参考 exec 方法 )。对象字符串中相匹配的部分会替换为这个函数返回的字符串。<r/>
　这个方法会忽略 start 属性。<r/>
</para>

<para>
<ptitle>split</ptitle>
　split 用于对字符串进行分割。<r/>
<bq>
構文 : split(&lt;对象字符串&gt;, &lt;(保留参数)&gt;, &lt;是否忽略空元素=false&gt;)<r/>
</bq>
　返回装有字符串分割结果的数组对象。<r/>
　更多内容请参考 <link href="array"/> 的 split 方法。<r/>
</para>

<para>
<ptitle>matches</ptitle>
　matches 属性是表示包含相匹配的各个子串的数组的只读属性。<r/>
　与模式不匹配的话，数组的元素书就是 0 。<r/>
　能匹配的话，元素 0 (第一个元素) 是全部的相匹配的子串，后面的元素是各个相匹配的子串 ( 模式字符串中以 (  ) 指定的部分 ) 。<r/>
</para>

<para>
<ptitle>start</ptitle>
　表示字符串的搜索起始位置的属性。也能对这个值进行设定。<r/>
</para>

<para>
<ptitle>index</ptitle>
　表示相匹配的子串的头一个字符的位置的只读属性。0 代表开头，就是指匹配对象字符串的开头的字符的位置。<r/>
</para>

<para>
<ptitle>lastIndex</ptitle>
　表示相匹配的子串的最后一个字符的下一个字符的位置的只读属性。0 代表开头。<r/>
</para>

<para>
<ptitle>input</ptitle>
　表示匹配对象字符串的只读属性。<r/>
</para>

<para>
<ptitle>leftContext</ptitle>
　表示匹配对象字符串中相匹配的子串的左侧的字符串的只读属性。<r/>
</para>

<para>
<ptitle>rightContext</ptitle>
　表示匹配对象字符串中相匹配的子串的右侧的字符串的只读属性。<r/>
</para>

<para>
<ptitle>lastMatch</ptitle>
　表示相匹配的全部子串。和 matches[0] 相同。
</para>

<para>
<ptitle>lastParen</ptitle>
　返回已匹配的各个子串中的最后一个。和 matches[matches.count-1] 相同。
</para>




<para>
<ptitle>Copyright notice</ptitle>
　在正则表达式功能的实现中使用了 John Maddock 的 <at target="_blank" href="http://ourworld.compuserve.com/homepages/John_Maddock/regexpp.htm">Regex++</at> 。特此感谢作者提供了如此实用的库。<r/>
<r/>
Copyright (c) 1998-2001<r/>
<r/>
Dr John Maddock<r/>
<r/>
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Dr John Maddock makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.<r/>
</para>

</doc>